package com.haitonghop.modules.cabvn;

import java.util.ArrayList;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabContentFactory;
import android.widget.TabHost.TabSpec;
import android.widget.TabWidget;
import android.widget.TextView;
import android.widget.Toast;

import com.haitonghop.R;
import com.haitonghop.controls.AdsViewControl;
import com.haitonghop.controls.IOnComicChanged;
import com.haitonghop.controls.IOnFinalPage;
import com.haitonghop.controls.ImagePagerAdapter;
import com.haitonghop.controls.OnSaveComic;
import com.haitonghop.data.HaiBLMetalData;
import com.haitonghop.main.AdsBussiness;
import com.haitonghop.main.ComicBussiness;
import com.haitonghop.network.APIRequestWorker;
import com.haitonghop.network.Request;
import com.haitonghop.network.RequestListener;
import com.haitonghop.requester.CabVnRequester;
import com.haitonghop.utils.AppSettingParams;
import com.haitonghop.utils.FaceBookUtils;
import com.haitonghop.utils.Logger;
import com.haitonghop.utils.Utils;
import com.haitonghop.utils.sqllite.datasource.TopicHaiBlData;

public class CabVnActivity extends Activity implements IOnComicChanged, OnTabChangeListener, RequestListener, IOnFinalPage {

	private TabHost tabHost;
	private ImagePagerAdapter imageComicAdapter;

	// private FrameLayout topMenuBar;

	@Override
	protected void onDestroy() {
		if (imageComicAdapter != null) {
			imageComicAdapter.clearListener();
		}
		tabHost.removeAllViewsInLayout();
		tabHost.removeAllViews();
		tabHost.destroyDrawingCache();
		super.onDestroy();
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.requestWindowFeature(Window.FEATURE_NO_TITLE);

		// Remove notification bar
		this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
		setContentView(R.layout.cabvn_activity_layout);
		init();

		tabHost = (TabHost) findViewById(android.R.id.tabhost);
		tabHost.setup();
		tabHost.setOnTabChangedListener(this);

		final TabWidget tabWidget = tabHost.getTabWidget();
		FrameLayout tabContent = tabHost.getTabContentView();

		View[] originalTextViews = new View[tabWidget.getTabCount()];
		for (int index = 0; index < tabWidget.getTabCount(); index++) {
			originalTextViews[index] = tabWidget.getChildTabViewAt(index);
		}
		tabWidget.removeAllViews();

		for (int index = 0; index < tabContent.getChildCount(); index++) {
			tabContent.getChildAt(index).setVisibility(View.GONE);
		}

		for (int index = 0; index < originalTextViews.length; index++) {
			final View tabContentView = tabContent.getChildAt(index);
			String tag = "";
			String name = "";
			int resoureId = -1;
			if (index == 0) {
				tag = "hot";
				name = "Nóng hổi";
			} else if (index == 1) {
				tag = "new";
				name = "Mới nhất";
			} else if (index == 2) {
				tag = "myth";
				name = "Huyền thoại";
			} else if (index == 3) {
				tag = "collection";
				name = "Sưu tầm";
			}
			TabSpec tabSpec = tabHost.newTabSpec(tag);
			View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, tabWidget, false);
			TextView title = (TextView) tabIndicator.findViewById(R.id.title);
			title.setText(name);
			// ImageView icon = (ImageView)
			// tabIndicator.findViewById(R.id.icon);
			// icon.setImageResource(resoureId);
			tabSpec.setIndicator(tabIndicator);
			tabSpec.setContent(new TabContentFactory() {
				@Override
				public View createTabContent(String tag) {
					return tabContentView;
				}
			});
			tabHost.addTab(tabSpec);
		}

		// initActionBar();

		// topMenuBar = (FrameLayout) findViewById(R.id.top_menu_bar);
		TextView textView = (TextView) findViewById(R.id.titleActivity);
		textView.setText("Chất VL");

		ImageButton moreFunction = (ImageButton) findViewById(R.id.btnMoreFunctions);
		if (moreFunction != null) {
			moreFunction.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {
					openOptionsMenu();
				}
			});
		}
		Button back = (Button) findViewById(R.id.btnBackAcvitity);
		if (back != null) {
			back.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {
					finish();
				}
			});
		}

	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		int itemId = item != null ? item.getItemId() : -1;
		switch (itemId) {
		case 1:
			Logger.logMe("Save default");
			ComicBussiness.getInstance(CabVnActivity.this).doSaveCommicToDefault(CabVnActivity.this, imageComicAdapter.getCurrentData(), new OnSaveComic() {

				@Override
				public void onError(int errorCode) {
					processError(errorCode);
				}

				@Override
				public void onDone(HaiBLMetalData blMetalData, TopicHaiBlData haiBlData) {
					// TODO Auto-generated
					// method stub

				}

				@Override
				public void onDoneWithNewTopic(HaiBLMetalData blMetalData, TopicHaiBlData haiBlData) {
					Logger.logMe("Sai flow, chuyen gi da xay ra duoi tang bussiness");
				}
			});
			break;
		case 2:
			// Logger.logMe("Save ");
			// ComicBussiness.getInstance(CabVnActivity.this).doSaveCommic(CabVnActivity.this,
			// imageComicAdapter.getCurrentData(), new OnSaveComic() {
			//
			// public void onError(int errorCode) {
			// processError(errorCode);
			// }
			//
			// public void onDone(HaiBLMetalData blMetalData, TopicHaiBlData
			// haiBlData) {
			// // TODO Auto-generated
			// // method stub
			//
			// }
			//
			// public void onDoneWithNewTopic(HaiBLMetalData blMetalData,
			// TopicHaiBlData haiBlData) {
			// if (haiBlData != null) {
			// showNotice("Thông báo", "�?ã dùng \"" + haiBlData.getName() +
			// "\" làm chủ đ�? lưu mặc định.\nTip : Bạn có thể thay đổi"
			// + " chủ đ�? mặc định này trong phần thiết lập của ứng dụng");
			// }
			// }
			// });
			Utils.downloadPhoto(this, 0, this, imageComicAdapter.getCurrentData().getImageUrl(), getResources());
			break;
		case 3:
			Logger.logMe("facebook");
			FaceBookUtils.doShareFaceBook(imageComicAdapter.getCurrentData(), CabVnActivity.this);
			break;
		case 4:
			doRefreshPage();
			Logger.logMe("refresh");
			break;
		case 5:
			FaceBookUtils.doShareApplication(this);
			break;
		case 6:
			AlertDialog alertDialog = new AlertDialog.Builder(CabVnActivity.this).create();
			alertDialog.setTitle("Chưa hỗ trợ");
			alertDialog.setMessage("Hiện tại trang web vẫn chưa hỗ trợ comment từ FaceBook nên ứng dụng không thể kết nối được hệ thống comment. "
					+ "Ứng dụng sẽ hỗ trợ tính năng này ngay khi trang web có kết nối với FaceBook.");
			alertDialog.setButton("Đóng", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// here you can add functions
				}
			});
			alertDialog.show();
			break;
		case 7:
			Utils.setWallpaper(this, 0, this, imageComicAdapter.getCurrentData().getImageUrl(), getResources());
			break;
		}
		// TODO Auto-generated method stub
		return super.onMenuItemSelected(featureId, item);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		if (ComicBussiness.getInstance(this).getDefaultComicTopic() != null && ComicBussiness.getInstance(this).getDefaultComicTopic().getId() != -1) {
			menu.add(1, 1, 1, "Lưu " + ComicBussiness.getInstance(this).getDefaultComicTopic().getName()).setIcon(R.drawable.ic_save_default);
		}
		menu.add(1, 2, 2, "Lưu").setIcon(R.drawable.ic_saved);
		menu.add(3, 3, 3, "Facebook").setIcon(R.drawable.ic_facebook);
		menu.add(4, 4, 4, "Tải lại").setIcon(R.drawable.ic_refresh);

		menu.add(5, 5, 5, "Chia sẻ App").setIcon(R.drawable.ic_share);
		menu.add(5, 6, 6, "Bình luận").setIcon(R.drawable.ic_comment);
		menu.add(6, 7, 5, "Đặt hình nền").setIcon(R.drawable.ic_wall);
		return super.onCreateOptionsMenu(menu);
	}

	void doAdsByServer() {
		AdsBussiness.getInstance().doGetAdsFromServer(CabVnActivity.this, prView);
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
			finish();
			return true;
		}

		return super.onKeyDown(keyCode, event);
	}

	void processError(int errorCode) {
		String error = "";
		switch (errorCode) {

		case OnSaveComic.CREATE_TOPIC_ERROR:
			error = "Không thể tạo được chủ đ�?.";
			break;
		case OnSaveComic.DB_NOT_FOUND:
			error = "Không tìm thấy tập tin dữ liệu.";
			break;
		case OnSaveComic.DEFAULT_TOPIC_NOTFOUND:
			error = "Không tìm thấy chủ đ�? mặc định.";
			break;
		case OnSaveComic.IMAGE_NOT_FOUND:
			error = "Không có truyện hiển thị.";
			break;
		case OnSaveComic.INSERT_COMIC_ERROR:
			error = "Không thể thêm truyện vào máy.";
			break;
		case OnSaveComic.TOPIC_NAME_INVAILD:
			error = "Tên chủ đ�? không đúng.";
			break;
		case OnSaveComic.TOPIC_NOTFOUND:
			error = "Không tìm thấy chủ đ�?.";
			break;
		}
		if (!error.equals("")) {
			Toast.makeText(CabVnActivity.this, error, 1000).show();
		}
	}

	void showNotice(String title, String message) {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(title);
		builder.setMessage(message);
		builder.setPositiveButton("Đóng", null);

		AlertDialog notice = builder.create();
		notice.show();
	}

	void doRefreshPage() {
		onTabChanged(currentTab);
	}

	// private QuickAction mQuickAction;

	// void initActionBar() {
	//
	// mQuickAction = QuickAction.getCommonActionBar(CabVnActivity.this,
	// ComicBussiness.getInstance(this).getDefaultComicTopic(), new
	// OnActionItemClickListener() {
	//
	// public void onItemClick(int pos) {
	// if (ComicBussiness.getInstance(CabVnActivity.this).getDefaultComicTopic()
	// == null) {
	// if (pos == 0) {
	// ComicBussiness.getInstance(CabVnActivity.this).doSaveCommic(CabVnActivity.this,
	// imageComicAdapter.getCurrentData(), new OnSaveComic() {
	//
	// public void onError(int errorCode) {
	// processError(errorCode);
	// }
	//
	// public void onDone(HaiBLMetalData blMetalData, TopicHaiBlData haiBlData)
	// {
	// // TODO Auto-generated method stub
	//
	// }
	//
	// public void onDoneWithNewTopic(HaiBLMetalData blMetalData, TopicHaiBlData
	// haiBlData) {
	// if (haiBlData != null) {
	// initActionBar();
	// showNotice("Thông báo", "�?ã dùng \"" + haiBlData.getName() +
	// "\" làm chủ đ�? lưu mặc định.\nTip : Bạn có thể thay đổi" +
	// " chủ đ�? mặc định này trong phần thiết lập của ứng dụng");
	// }
	// }
	// });
	// } else if (pos == 1) {
	// FaceBookUtils.doShareFaceBook(imageComicAdapter.getCurrentData(),
	// CabVnActivity.this);
	// } else if (pos == 2) {
	// doRefreshPage();
	// } else if(pos == 3){
	// FaceBookUtils.makeFriend(imageComicAdapter.getCurrentData(),CabVnActivity.this);
	// }
	// } else {
	// if (pos == 0) {
	// ComicBussiness.getInstance(CabVnActivity.this).doSaveCommicToDefault(CabVnActivity.this,
	// imageComicAdapter.getCurrentData(), new OnSaveComic() {
	//
	// public void onError(int errorCode) {
	// processError(errorCode);
	// }
	//
	// public void onDone(HaiBLMetalData blMetalData, TopicHaiBlData haiBlData)
	// {
	// // TODO Auto-generated method stub
	//
	// }
	//
	// public void onDoneWithNewTopic(HaiBLMetalData blMetalData, TopicHaiBlData
	// haiBlData) {
	// Logger.logMe("Sai flow, chuyen gi da xay ra duoi tang bussiness");
	// }
	// });
	// } else if (pos == 1) {
	// ComicBussiness.getInstance(CabVnActivity.this).doSaveCommic(CabVnActivity.this,
	// imageComicAdapter.getCurrentData(), new OnSaveComic() {
	//
	// public void onError(int errorCode) {
	// processError(errorCode);
	// }
	//
	// public void onDone(HaiBLMetalData blMetalData, TopicHaiBlData haiBlData)
	// {
	// // TODO Auto-generated method stub
	//
	// }
	//
	// public void onDoneWithNewTopic(HaiBLMetalData blMetalData, TopicHaiBlData
	// haiBlData) {
	// if (haiBlData != null) {
	// initActionBar();
	// showNotice("Thông báo", "�?ã dùng \"" + haiBlData.getName() +
	// "\" làm chủ đ�? lưu mặc định.\nTip : Bạn có thể thay đổi" +
	// " chủ đ�? mặc định này trong phần thiết lập của ứng dụng");
	// }
	// }
	// });
	// } else if (pos == 2) {
	// FaceBookUtils.doShareFaceBook(imageComicAdapter.getCurrentData(),
	// CabVnActivity.this);
	// } else if (pos == 3) {
	// doRefreshPage();
	// } else if(pos == 4){
	// FaceBookUtils.makeFriend(imageComicAdapter.getCurrentData(),CabVnActivity.this);
	// }
	// }
	//
	// }
	// });
	// }

	private String currentTab = "";
	int newPage = 1;
	int hotPage = 1;
	int mythPage = 1;
	int collectionPage = 1;

	long currentRequestId = -1;

	void init() {

	}

	void getNew(RequestListener listener) {
		Logger.logMe("requesting page = " + newPage);
		CabVnRequester haiVLRequester = CabVnRequester.getNew(newPage, listener);
		currentRequestId = AppSettingParams.nextRequestId();
		haiVLRequester.setRequestId(currentRequestId);
		APIRequestWorker.getInstance().addAPIRequest(haiVLRequester);
	}

	void getHot(RequestListener listener) {
		Logger.logMe("requesting page = " + hotPage);
		CabVnRequester haiVLRequester = CabVnRequester.getHot(hotPage, listener);
		currentRequestId = AppSettingParams.nextRequestId();
		haiVLRequester.setRequestId(currentRequestId);
		APIRequestWorker.getInstance().addAPIRequest(haiVLRequester);
	}

	void getMyth(RequestListener listener) {
		Logger.logMe("requesting page = " + mythPage);
		CabVnRequester haiVLRequester = CabVnRequester.getMyth(mythPage, listener);
		currentRequestId = AppSettingParams.nextRequestId();
		haiVLRequester.setRequestId(currentRequestId);
		APIRequestWorker.getInstance().addAPIRequest(haiVLRequester);
	}

	void getCollection(RequestListener listener) {
		Logger.logMe("requesting page = " + collectionPage);
		CabVnRequester haiVLRequester = CabVnRequester.getCollection(collectionPage, listener);
		currentRequestId = AppSettingParams.nextRequestId();
		haiVLRequester.setRequestId(currentRequestId);
		APIRequestWorker.getInstance().addAPIRequest(haiVLRequester);
	}

	boolean isShowFunctionControl = true;
	OnClickListener onImageViewTouchTapConfirm = new OnClickListener() {

		@Override
		public void onClick(View v) {

			if (isShowFunctionControl) {
				Animation animFadeOut = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_out);
				// topMenuBar.setAnimation(animFadeOut);
				tabHost.getTabWidget().setAnimation(animFadeOut);
				isShowFunctionControl = false;
				tabHost.getTabWidget().setVisibility(View.GONE);
				// topMenuBar.setVisibility(View.GONE);
			} else {
				Animation animFadeIn = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_in);
				// topMenuBar.setAnimation(animFadeIn);
				tabHost.getTabWidget().setAnimation(animFadeIn);
				isShowFunctionControl = true;
				tabHost.getTabWidget().setVisibility(View.VISIBLE);
				// topMenuBar.setVisibility(View.VISIBLE);
			}

		}
	};

	// Facebook facebook = null;
	//
	// private void doComment(final HaiBLMetalData blMetalData) {
	// facebook = new Facebook(GlobalData.FACEBOOK_APP_ID);
	// boolean isValid = SessionStore.restore(facebook,
	// getApplicationContext());
	// if (isValid) {
	// Logger.logMe(">>>>>>>>>>Logged before");
	// Logger.logMe("getAccessToken " + facebook.getAccessToken());
	// Logger.logMe("getAccessExpires " + facebook.getAccessExpires());
	// // Intent intent = new Intent(getApplication(),
	// // HaiVlCommentActivity.class);
	// // if(blMetalData != null){
	// // intent.putExtra("IMAGE_ID", blMetalData.getDetailUrl());
	// // }
	// // startActivity(intent);
	// } else {
	// facebook.authorize(this, new DialogListener() {
	//
	// public void onFacebookError(FacebookError e) {
	// // TODO Auto-generated method stub
	//
	// }
	//
	// public void onError(DialogError e) {
	// // TODO Auto-generated method stub
	//
	// }
	//
	// public void onComplete(Bundle values) {
	// if (facebook != null) {
	// // TODO Auto-generated method stub
	// Logger.logMe("getAccessToken " + facebook.getAccessToken());
	// Logger.logMe("getAccessExpires " + facebook.getAccessExpires());
	// SessionStore.save(facebook, getApplicationContext());
	// // Intent intent = new Intent(getApplication(),
	// // HaiVlCommentActivity.class);
	// // if(blMetalData != null){
	// // intent.getExtras().putString("IMAGE_ID",
	// // blMetalData.getDetailUrl());
	// // }
	// // startActivity(intent);
	// } else {
	//
	// }
	// }
	//
	// public void onCancel() {
	// // TODO Auto-generated method stub
	//
	// }
	// });
	// }
	// }

	ViewPager viewPager = null;
	AdsViewControl prView = null;
	LinearLayout loading = null;
	LinearLayout loadingError = null;
	TextView imageDescription = null;
	LinearLayout menuBar = null;

	RequestListener listener = new RequestListener() {

		@Override
		public void onRequestFailed(String errorMsg, Request request) {
			runOnUiThread(new Runnable() {
				@Override
				public void run() {
					imageComicAdapter.clearData();
					loading.setVisibility(View.GONE);
					loadingError.setVisibility(View.VISIBLE);
					doAdsByServer();
				}
			});
		}

		@Override
		public void onRequestComplete(Request request) {
			// TODO Auto-generated method stub
			if (request instanceof CabVnRequester && currentRequestId == request.getRequestId()) {
				ArrayList<HaiBLMetalData> datas = ((CabVnRequester) request).getDataList();
				imageComicAdapter.setNewData(datas);
				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						if (isShowFunctionControl) {
							menuBar.setVisibility(View.VISIBLE);
							imageDescription.setVisibility(View.VISIBLE);
						} else {
							menuBar.setVisibility(View.GONE);
							imageDescription.setVisibility(View.GONE);
						}

						loading.setVisibility(View.GONE);
						prView.setVisibility(View.VISIBLE);
						viewPager.setVisibility(View.VISIBLE);
						imageComicAdapter.notifyDataSetChanged();
						imageComicAdapter.onPageSelected(0);
						doAdsByServer();
					}
				});
			}
		}
	};

	LinearLayout videoFunction = null;

	@Override
	public void commicChanged(HaiBLMetalData blMetalData) {
		if (imageDescription != null) {
			imageDescription.setText(blMetalData.getTitleDescription());
		}
		if (videoFunction != null) {
			if (blMetalData.isVideo()) {
				videoFunction.setVisibility(View.VISIBLE);
			} else {
				videoFunction.setVisibility(View.INVISIBLE);
			}
		}
	}

	OnClickListener clickListenerComment = new OnClickListener() {

		@Override
		public void onClick(View v) {
			AlertDialog alertDialog = new AlertDialog.Builder(CabVnActivity.this).create();
			alertDialog.setTitle("Chưa hỗ trợ");
			alertDialog.setMessage("Hiện tại trang web vẫn chưa hỗ trợ comment từ FaceBook nên ứng dụng không thể kết nối được hệ thống comment. "
					+ "Ứng dụng sẽ hỗ trợ tính năng này ngay khi trang web có kết nối với FaceBook.");
			alertDialog.setButton("Đóng", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// here you can add functions
				}
			});
			alertDialog.show();
		}
	};

	OnClickListener viewVideo = new OnClickListener() {

		@Override
		public void onClick(View v) {
			if (imageComicAdapter != null && imageComicAdapter.getCurrentData() != null) {
				String videoLink = imageComicAdapter.getCurrentData().getVideoLink();
				if (videoLink != null) {
					Logger.logMe("Link from server");
					Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(videoLink));
					startActivity(browserIntent);
				} else {
					String image = imageComicAdapter.getCurrentData().getImageUrl();
					if (image != null && image.indexOf("youtube") != -1) {
						String[] rs = image.split("/");
						if (rs.length > 0) {
							String id = rs[rs.length - 2];
							String url = "http://www.youtube.com/embed/" + id;
							Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
							startActivity(browserIntent);
						}
					}
				}
			}
		}
	};

	Button btnView = null;
	LinearLayout loadingFinalPage = null;

	@Override
	public void onTabChanged(String tag) {
		View view = tabHost.getCurrentView();
		viewPager = (ViewPager) view.findViewById(R.id.view_pager);
		loadingFinalPage = (LinearLayout) view.findViewById(R.id.loadingFinalPage);
		prView = (AdsViewControl) view.findViewById(R.id.prview);
		loading = (LinearLayout) view.findViewById(R.id.loadingpage);
		imageDescription = (TextView) view.findViewById(R.id.imageDescription);
		menuBar = (LinearLayout) view.findViewById(R.id.menubar);
		loadingError = (LinearLayout) view.findViewById(R.id.loadingError);
		videoFunction = (LinearLayout) view.findViewById(R.id.videoFunction);
		btnView = (Button) view.findViewById(R.id.doViewVideoFunction);
		btnView.setOnClickListener(viewVideo);

		viewPager.setVisibility(View.INVISIBLE);
		prView.setVisibility(View.INVISIBLE);
		loading.setVisibility(View.VISIBLE);
		menuBar.setVisibility(View.INVISIBLE);
		loadingError.setVisibility(View.INVISIBLE);
		currentTab = tag;

		if (imageComicAdapter == null) {

			imageComicAdapter = new ImagePagerAdapter(this);
			imageComicAdapter.setOnFinalPage(this);
			imageComicAdapter.setComicChanged(this);
			imageComicAdapter.setOnClickImageViewSingerTapListener(onImageViewTouchTapConfirm);
		}

		imageComicAdapter.clearData();
		viewPager.setAdapter(imageComicAdapter);
		viewPager.setOnPageChangeListener(imageComicAdapter);

		// khi doi tab can reset lai so page
		// cached lai nhu the nao
		if ("new".equals(tag)) {
			getNew(listener);
		} else if ("hot".equals(tag)) {
			getHot(listener);
		} else if ("myth".equals(tag)) {
			getMyth(listener);
		} else if ("collection".equals(tag)) {
			getCollection(listener);
		}
	}

	@Override
	public void onRequestComplete(Request request) {

	}

	@Override
	public void onRequestFailed(String errorMsg, Request request) {
		// TODO Auto-generated method stub

	}

	int countAds = 0;

	@Override
	public void onFinalPage() {
		loadingFinalPage.setVisibility(View.VISIBLE);
		countAds++;
		// if(countAds >= 2){
		countAds = 0;
		doAdsByServer();
		// }
		RequestListener listener = new RequestListener() {

			@Override
			public void onRequestFailed(String errorMsg, Request request) {
				// TODO Auto-generated method stub
				Logger.logMe(">>>>Fail");
				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						loadingFinalPage.setVisibility(View.GONE);
					}
				});
			}

			@Override
			public void onRequestComplete(Request request) {
				// TODO Auto-generated method stub
				if (request instanceof CabVnRequester && currentRequestId == request.getRequestId()) {
					final ArrayList<HaiBLMetalData> datas = ((CabVnRequester) request).getDataList();
					runOnUiThread(new Runnable() {
						@Override
						public void run() {
							loadingFinalPage.setVisibility(View.GONE);
							if (imageComicAdapter != null) {
								imageComicAdapter.setMetalData(datas);
								imageComicAdapter.notifyDataSetChanged();
							}
						}
					});
				}
			}
		};
		if ("new".equals(currentTab)) {
			newPage++;
			getNew(listener);
		} else if ("hot".equals(currentTab)) {
			hotPage++;
			getHot(listener);
		} else if ("myth".equals(currentTab)) {
			mythPage++;
			getMyth(listener);
		} else if ("collection".equals(currentTab)) {
			collectionPage++;
			getCollection(listener);
		}
	}

	// public void onComment(HaiBLMetalData data) {
	// AlertDialog alertDialog = new AlertDialog.Builder(this).create();
	// alertDialog.setTitle("Chưa hỗ trợ");
	// alertDialog.setMessage("Hiện tại trang web vẫn chưa hỗ trợ comment từ FaceBook nên ứng dụng không thể kết nối được hệ thống comment. Chúng tôi sẽ hỗ trợ tính năng này ngay khi trang web có kết nối với FaceBook.");
	// alertDialog.setButton("�?óng", new DialogInterface.OnClickListener() {
	// public void onClick(DialogInterface dialog, int which) {
	// // here you can add functions
	// }
	// });
	// alertDialog.show();
	// }
	//
	// public void onLike(HaiBLMetalData data) {
	// // TODO Auto-generated method stub
	//
	// }

	@Override
	public void onFinalItem(HaiBLMetalData data) {
		// TODO Auto-generated method stub

	}
}
